/**
 * Copyright (C) 2013 DaiKit.com - daikit4gxt module (admin@daikit.com)
 *
 *         Project home : http://code.daikit.com/daikit4gxt
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.daikit.daikit4gxt.client;

/**
 * Base configuration class
 * 
 * @author tcaselli
 * @version $Revision$ Last modifier: $Author$ Last commit: $Date$
 */
public class BaseConfiguration
{
	private boolean isStandalone = true;
	private boolean embeddedReconnectionAuthorized = true;
	private boolean connectionNeedingPassword = true;
	private boolean loadDefaultScreenAfterEachLogin = false;
	private boolean loadDefaultScreenAfterDisconnect = false;
	private int actionTimeoutMilliseconds = 60000;
	private int applicationWidth = 1280;
	private int editorGridHeight = 211; // = (22+5)*8-5
	private int dynamicComboboxWidth = 450;
	private int popupWidth = 650;
	private int asyncComboboxQueryDelayMilliseconds = 800;
	private int actionDelayBeforeNewtActionExecutionMilliseconds = 10;
	private int actionDelayBeforeRunMilliseconds = 10;
	private int formLabelWidth = 180;
	private int formMoreThan3ColumnsLabelWidth = 120;


	/**
	 * @param isStandalone
	 *           the isStandalone to set
	 */
	public void setStandalone(final boolean isStandalone)
	{
		this.isStandalone = isStandalone;
	}

	/**
	 * @param embeddedReconnectionAuthorized
	 *           the embeddedReconnectionAuthorized to set
	 */
	public void setEmbeddedReconnectionAuthorized(final boolean embeddedReconnectionAuthorized)
	{
		this.embeddedReconnectionAuthorized = embeddedReconnectionAuthorized;
	}

	/**
	 * @param connectionNeedingPassword
	 *           the connectionNeedingPassword to set
	 */
	public void setConnectionNeedingPassword(final boolean connectionNeedingPassword)
	{
		this.connectionNeedingPassword = connectionNeedingPassword;
	}

	/**
	 * @param loadDefaultScreenAfterEachLogin
	 *           the loadDefaultScreenAfterEachLogin to set
	 */
	public void setLoadDefaultScreenAfterEachLogin(final boolean loadDefaultScreenAfterEachLogin)
	{
		this.loadDefaultScreenAfterEachLogin = loadDefaultScreenAfterEachLogin;
	}

	/**
	 * @param loadDefaultScreenAfterDisconnect
	 *           the loadDefaultScreenAfterDisconnect to set
	 */
	public void setLoadDefaultScreenAfterDisconnect(final boolean loadDefaultScreenAfterDisconnect)
	{
		this.loadDefaultScreenAfterDisconnect = loadDefaultScreenAfterDisconnect;
	}

	/**
	 * @param applicationWidth
	 *           the applicationWidth to set
	 */
	public void setApplicationWidth(final int applicationWidth)
	{
		this.applicationWidth = applicationWidth;
	}

	/**
	 * @param editorGridHeight
	 *           the editorGridHeight to set
	 */
	public void setEditorGridHeight(final int editorGridHeight)
	{
		this.editorGridHeight = editorGridHeight;
	}

	/**
	 * @param dynamicComboboxWidth
	 *           the dynamicComboboxWidth to set
	 */
	public void setDynamicComboboxWidth(final int dynamicComboboxWidth)
	{
		this.dynamicComboboxWidth = dynamicComboboxWidth;
	}

	/**
	 * @return the isStandalone
	 */
	public boolean isStandalone()
	{
		return isStandalone;
	}

	/**
	 * @return the embeddedReconnectionAuthorized
	 */
	public boolean isEmbeddedReconnectionAuthorized()
	{
		return embeddedReconnectionAuthorized;
	}

	/**
	 * @return the connectionNeedingPassword
	 */
	public boolean isConnectionNeedingPassword()
	{
		return connectionNeedingPassword;
	}

	/**
	 * @return the loadDefaultScreenAfterEachLogin
	 */
	public boolean loadDefaultScreenAfterEachLogin()
	{
		return loadDefaultScreenAfterEachLogin;
	}

	/**
	 * @return the loadDefaultScreenAfterDisconnect
	 */
	public boolean loadDefaultScreenAfterDisconnect()
	{
		return loadDefaultScreenAfterDisconnect;
	}

	/**
	 * @return the applicationWidth
	 */
	public int getApplicationWidth()
	{
		return applicationWidth;
	}

	/**
	 * @return the defaultEditorGridHeight
	 */
	public int getEditorGridHeight()
	{
		return editorGridHeight;
	}

	/**
	 * @return the dynamicComboboxWidth
	 */
	public int getDynamicComboboxWidth()
	{
		return dynamicComboboxWidth;
	}

	/**
	 * @return the popupWidth
	 */
	public int getPopupWidth()
	{
		return popupWidth;
	}

	/**
	 * @param popupWidth
	 *           the popupWidth to set
	 */
	public void setPopupWidth(final int popupWidth)
	{
		this.popupWidth = popupWidth;
	}

	/**
	 * @return the asyncComboboxQueryDelayMilliseconds
	 */
	public int getAsyncComboboxQueryDelayMilliseconds()
	{
		return asyncComboboxQueryDelayMilliseconds;
	}

	/**
	 * @param asyncComboboxQueryDelayMilliseconds
	 *           the asyncComboboxQueryDelayMilliseconds to set
	 */
	public void setAsyncComboboxQueryDelayMilliseconds(final int asyncComboboxQueryDelayMilliseconds)
	{
		this.asyncComboboxQueryDelayMilliseconds = asyncComboboxQueryDelayMilliseconds;
	}

	/**
	 * @return the actionDelayBeforeNewtActionExecutionMilliseconds
	 */
	public int getActionDelayBeforeNewtActionExecutionMilliseconds()
	{
		return actionDelayBeforeNewtActionExecutionMilliseconds;
	}

	/**
	 * @param actionDelayBeforeNewtActionExecutionMilliseconds
	 *           the actionDelayBeforeNewtActionExecutionMilliseconds to set
	 */
	public void setActionDelayBeforeNewtActionExecutionMilliseconds(final int actionDelayBeforeNewtActionExecutionMilliseconds)
	{
		this.actionDelayBeforeNewtActionExecutionMilliseconds = actionDelayBeforeNewtActionExecutionMilliseconds;
	}

	/**
	 * @return the actionDelayBeforeRunMilliseconds
	 */
	public int getActionDelayBeforeRunMilliseconds()
	{
		return actionDelayBeforeRunMilliseconds;
	}

	/**
	 * @param actionDelayBeforeRunMilliseconds
	 *           the actionDelayBeforeRunMilliseconds to set
	 */
	public void setActionDelayBeforeRunMilliseconds(final int actionDelayBeforeRunMilliseconds)
	{
		this.actionDelayBeforeRunMilliseconds = actionDelayBeforeRunMilliseconds;
	}

	/**
	 * @return the actionTimeoutMilliseconds
	 */
	public int getActionTimeoutMilliseconds()
	{
		return actionTimeoutMilliseconds;
	}

	/**
	 * @param actionTimeoutMilliseconds
	 *           the actionTimeoutMilliseconds to set
	 */
	public void setActionTimeoutMilliseconds(final int actionTimeoutMilliseconds)
	{
		this.actionTimeoutMilliseconds = actionTimeoutMilliseconds;
	}

	/**
	 * @return the formLabelWidth
	 */
	public int getFormLabelWidth()
	{
		return formLabelWidth;
	}

	/**
	 * @param formLabelWidth
	 *           the formLabelWidth to set
	 */
	public void setFormLabelWidth(final int formLabelWidth)
	{
		this.formLabelWidth = formLabelWidth;
	}

	/**
	 * @return the formMoreThan3ColumnsLabelWidth
	 */
	public int getFormMoreThan3ColumnsLabelWidth()
	{
		return formMoreThan3ColumnsLabelWidth;
	}

	/**
	 * @param formMoreThan3ColumnsLabelWidth
	 *           the formMoreThan3ColumnsLabelWidth to set
	 */
	public void setFormMoreThan3ColumnsLabelWidth(final int formMoreThan3ColumnsLabelWidth)
	{
		this.formMoreThan3ColumnsLabelWidth = formMoreThan3ColumnsLabelWidth;
	}
}
